"""
演示RDD的reduceByKey成员方法的使用
"""

from pyspark import SparkContext, SparkConf
import os

os.environ['PYSPARK_PYTHON'] = "D:/Work/anaconda3/python.exe"
conf = SparkConf().setAppName("test_spark").setMaster("local[*]")
sc = SparkContext(conf=conf)

# 准备一个RDD
rdd = sc.parallelize([('男', 99), ('男', 88), ('男', 77), ('女', 99,), ('女', 66), ('女', 58)])

# 求男生女生两个组的成绩之和，reduceByKey会根据key对数据进行分组，然后将value逐个送入func，实现累积处理
# 如上面的数据，会先将99和88送入，然后再将99和88的结果以及77送入
rdd2 = rdd.reduceByKey(lambda x, y: x + y)

print(rdd2.collect())

sc.stop()